#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

// 定义一个guage函数来显示持续x秒的进度条
void guage(int x)
{
    int len = 20; //进度条总长度
    float flag = 0; // 当前进度条已填充的部分

    for(int i = 0;i < x; i++)
    {
        system("clear"); // 清除屏幕并打印新的进度条
        printf("["); // 打印进度条的左括号

        for(int j = 0;j < (int)flag; j++) // 打印已填充的部分
            putchar('=');
        for(int j = 0;j < len - flag; j++) // 打印未填充的部分
            putchar(' ');

        putchar(']'); // 打印进度条的右括号
        printf(" %d%%", (int)(100/(float)x*i)); // 打印当前百分比
        fflush(stdout); // 刷新输出缓冲区，确保立即显示

        sleep(1); // 等待一秒
        flag += (float)len/x; // 更新进度条状态

        if( i==x-1 )
        {//确保进度条被完全填充
            system("clear");
            putchar('[');
            for(int j = 0;j < len; j++)
                putchar('=');
            printf("]");
            printf(" 100%%");
        }

    }

    if(x<=0)
    {
        system("clear");
        putchar('[');
        for(int j = 0;j < len; j++)
            putchar('=');
        printf("]");
        printf(" 100%%");
    }

}

int main()
{
    int n;
    printf("请输入等待时间\n");
    scanf("%d", &n);
    guage(n); //进度条加载n秒
    putchar('\n');
    return 0;
}